Soru & Cevap

Rastgele sayı üretme ...

09.05.2020 - 09:04

0 ile 1000 arasında 500 tane rastgele sayı üretip bir diziye aktaran ardından dizi içindeki asal sayıları bulup yeni bir diziye kaydeden kodu yazmama yardım eder misiniz

960 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-285937-1606688513.png
01burkatan01
09.05.2020 - 10:38
package com.company;

import java.util.ArrayList;
import java.util.Random;

public class Main {

    public static void main(String[] args) {
        Random rand = new Random();
        int[] dizi = new int[500];
        ArrayList<Integer> asallar = new ArrayList<>();

        for (int i = 0; i<500; i++){
            dizi[i] = 1+rand.nextInt(1000);
        }

        for (int i = 0; i<500; i++){
            if (asalMi(dizi[i])){
                asallar.add(i);
            }
        }
        
    }


    public static boolean asalMi(int sayi){

        if (sayi == 1){
            return false;
        }

        if (sayi == 2){
            return true;
        }

        if (sayi%2 == 0){
            return false;
        }

        int i = 3;

        while (i<=Math.sqrt(sayi)){
            if (sayi%i == 0){
                return false;
            }
            i +=2 ;
        }
        return true;
    }
    
    
}

 

Arraylist kullanmayacaksan önce kaç adet asal olduğu sayısını belirleyip sonra dizini oluşturacaksın.

Asal kontrolünü en az kontolle en efektif şekilde yaptırdım.

Asal sayının asal olup olmadığını kontrol ederken kökünden büyük sayılar için kontrol ettirilmez bunu bildiğini varsayıyorum.

Ayrıca tek çift sayı 2 olduğu için çift sayıların da kontrolü 2 den sonra yok

Fatma
09.05.2020 - 11:30
Teşekkür ederim